// console.log(globalThis)
// console.log(this)

// // 全局函数内的this就是global对象
// function foo() {console.log(this)}

// foo()


function pFun(func) {
    
  // 记录运行次数, 和题目的===before n=== 对应
  pFun.i = 1;
  
  function before(){
      console.log(`===before${pFun.i}===`);
  }
  
  function after(){
      console.log(`===after${pFun.i}===`);
  }
  
  return function() {
      // 参数不是方法则返回false
      if(typeof func !== 'function') return false
      
      before();
      func();
      after();
      pFun.i++;
      // 返回是运行次数
      return pFun.i;
  }
}


let func = pFun(function() {
  console.log('func...');
})

let func2 = pFun(function() {
  console.log('func2...')
})


func();
func2();

func = null;
func2 = null;
